#ifndef CAMERA_H
#define CAMERA_H

#include "glm.hpp"
using namespace glm;

class Camera {
public:
	void moveForward(float step_size);
	void moveBackward(float step_size);
	void strafeLeft(float step_size);
	void strafeRight(float step_size);
	void moveUp(float step_size);

	void rotateLeft(float step_size);
	void rotateRight(float step_size);
	void rotateUp(float step_size);
	void rotateDown(float step_size);

	mat4 getView();
	vec3 getPosition();
	vec3 getDirection();

	Camera(vec3 position, vec3 direction, vec3 up) : position(position), direction(direction), up(up) { }
	~Camera() { }

private:
	vec3 position;
	vec3 direction;
	vec3 up;
};

#endif // #ifndef CAMERA_H